﻿using System.Collections.Generic;
using CodePlex.TeamFoundation.Adapters.VersionControl;
using CodePlex.TeamFoundation.Adapters.WorkItemTracking;
using Microsoft.TeamFoundation.Build.Client;

namespace CodePlex.TeamFoundation.Adapters
{
  /// <summary>
  /// This factory facilitates the mocking of complex TFS API objects.
  /// It's used to get around sealed classes and static methods.
  /// </summary>
  public interface ITfsFactory
  {
    ITeamFoundationServer GetTeamFoundationServer();
    IBuildServer GetBuildServer();
    List<IWorkItemSummary> GetAssociatedWorkItems(IBuildDetail build);
    IWorkItemStore GetWorkItemStore();
    IVersionControlServer GetVersionControlServer();
  }
}
